﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BookStore.Solution.BLL;
using BookStore.Solution.Entities;

namespace BookStore.Solution.Presentation
{
    public partial class ucAuthor : UserControl
    {
        AuthorManager authorManager = new AuthorManager();
        public ucAuthor()
        {
            InitializeComponent();
        }

        private void ucAuthor_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        private void LoadData()
        {
            
            grvListofAuthor.AutoGenerateColumns = false;
            grvListofAuthor.DataSource = authorManager.GetAll();
            for (int i = 0; i < grvListofAuthor.Columns.Count; i++)
            {
                grvListofAuthor.Columns[i].DataPropertyName = grvListofAuthor.Columns[i].Name;
            }
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            string authorID = "";
            int selectColumn = grvListofAuthor.SelectedRows.Count;
            if (selectColumn > 0)
            {
                authorID = grvListofAuthor.CurrentRow.Cells["AuthorID"].Value.ToString();
                FrmAuthor frm = new FrmAuthor(authorID,false);
                frm.ShowDialog();
            }
            else
            {
                MessageBox.Show("Bạn phải chọn ít nhất một tác giả để cập nhật", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            FrmAuthor frm = new FrmAuthor();
            frm.ShowDialog();
            if (frm.Visible == false)
            {
                LoadData();
            }
        }

        private void btnSearchbyID_Click(object sender, EventArgs e)
        {
            FrmSearchbyAuthorID frm = new FrmSearchbyAuthorID();
            frm.ShowDialog();
            if (!frm.Visible)
            {
                if (frm.result != null)
                {
                    grvListofAuthor.AutoGenerateColumns = false;
                    grvListofAuthor.DataSource = frm.result;
                    for (int i = 0; i < grvListofAuthor.Columns.Count; i++)
                    {
                        grvListofAuthor.Columns[i].DataPropertyName = grvListofAuthor.Columns[i].Name;
                    }
                }
            }
        }

        private void btnSearchbyName_Click(object sender, EventArgs e)
        {
            FrmSearchbyAuthorName frm = new FrmSearchbyAuthorName();
            frm.ShowDialog();
            if (!frm.Visible)
            {
                if (frm.result != null)
                {
                    grvListofAuthor.AutoGenerateColumns = false;
                    grvListofAuthor.DataSource = frm.result;
                    for (int i = 0; i < grvListofAuthor.Columns.Count; i++)
                    {
                        grvListofAuthor.Columns[i].DataPropertyName = grvListofAuthor.Columns[i].Name;
                    }
                }
            }
        }

        private void btnViewDetail_Click(object sender, EventArgs e)
        {
            string authorID = "";
            int selectColumn = grvListofAuthor.SelectedRows.Count;
            if (selectColumn > 0)
            {
                authorID = grvListofAuthor.CurrentRow.Cells["AuthorID"].Value.ToString();
                FrmAuthor frm = new FrmAuthor(authorID,true);
                frm.viewDetail = true;
                frm.ShowDialog();
            }
            else
            {
                MessageBox.Show("Bạn phải chọn ít nhất một tác giả để xem chi tiết", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            string authorID = "", result ="";
            int selectColumn = grvListofAuthor.SelectedRows.Count;
            if (selectColumn > 0)
            {
                authorID = grvListofAuthor.CurrentRow.Cells["AuthorID"].Value.ToString();
                DialogResult dlr = MessageBox.Show("Bạn có chắc chắn xóa tác giả có mã: " + authorID + " ra khỏi hệ thống hay không?", "Xác nhận xóa",
                                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dlr == DialogResult.Yes)
                {
                    Author author = new Author();
                    AuthorManager authorManager = new AuthorManager();
                    author = authorManager.GetDetail(authorID);
                    result = authorManager.Delete(author);
                    if (result != "")
                    {
                        MessageBox.Show(result, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        LoadData();
                    }
                }
                
            }
            else
            {
                MessageBox.Show("Bạn phải chọn ít nhất một tác giả để xóa", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void tsmiRefesh_Click(object sender, EventArgs e)
        {
            LoadData();
        }
    }
}
